// 导入模块
import Request from 'luch-request'
import {
  useUsercodeStore
} from '@/store/usercode.js'
import {
  serverpath
} from './const.js';
// 实例化网络请求
const http = new Request({
  // 接口基地址
  // baseURL: 'https://app.oujiang.fun/', //旧正式
  baseURL: serverpath, //测试
  // baseURL: 'https://ouhun.wm2177.com/', //正式
})
// 请求拦截器
http.interceptors.request.use(
  function(config) {
    const userCodeStore = useUsercodeStore()
    // 显示加载状态提示
    // console.log('confit');
    // console.log(config.custom.loading);
    // if (config.custom.loading) {
    // uni.showLoading({
    //   title: '正在加载...',
    //   mask: true,
    //   duration: 1500
    // })
    // uni.showToast({
    //   title: '扫码失败',
    //   image: '/static/all.png', ////要写根路径，不要写相对路径
    //   duration: 3000,
    // })
    // }

    // 定义头信息，并保证接口调用传递的头信息
    // 能够覆盖在拦截器定义的头信息
    config.header = {
      'user-id': userCodeStore.usercode.userId,
      'token': userCodeStore.usercode.token,
      ...config.header,
    }

    return config
  },
  function(error) {
    return Promise.reject(error)
  }
)

// 响应拦截器
http.interceptors.response.use(
  function({
    statusCode,
    data,
    config
  }) {
    const userCodeStore = useUsercodeStore()
    // 隐藏加载状态提示
    // uni.hideLoading()
    // 没登录
    if (data.st == 401 && !userCodeStore.usercode.userId) {
      uni.utils.toast("请先登录")
      // setTimeout(() => {
      // uni.navigateTo({
      // 	url: `/pages/login/login`,
      // })
      // }, 2000)
    }
    // 账号封了
    if (data.st == 403) {
      uni.utils.toast(data.msg)
    }
    //token过期
    if (data.st == 402 && userCodeStore.usercode.userId) {
      uni.utils.toast(data.msg)
      userCodeStore.delUsercode()
      setTimeout(() => {
        uni.navigateTo({
          url: `/pages/login/login`,
        })
      }, 2000)
    }
    // 解构出响应主体
    return data
  },
  function(error) {
    return Promise.reject(error)
  }
)

// 导出配置好的模网络模块
export {
  http
}